1.11. Самое
главное
Когда
функциональное поведение цифровой системы и требования к ее характеристикам заданы, цель
практического цифрового проектирования состоит в минимизации ее стоимости. При проектировании
на уровне печатной платы (board-level design), то есть в случае, когда проектируемая система будет занимать одну печатную плату, это условие обычно означает, что
должно быть минимальным число
корпусов ИС. Если число ИС слишком велико, они не поместятся на печатной плате. Вы скажете: «Ну, воспользуемся тогда
большей платой». К сожалению,
размеры платы, как правило, ограничены такими факторами, как уже существующие стандарты (например, на платы, вставляемые
в персональные компьютеры), требованиями к конструктивному оформлению
(например, предназначенная для тостера плата
должна в него входить) или указаниями сверху (например, при утверждении
проекта три месяца назад вы неосторожно сказали руководству, что вся система разместится на печатной плате размером 3x5 дюймов,
и теперь должны
оправдать ожидания). В каждом из этих случаев использование большей по размерам платы или нескольких
плат может оказаться неприемлемым по
стоимости.
Чаще
всего к минимизации числа ИС стремятся даже в том случае, когда стоимость отдельных ИС изменяется. Например, типичные МИС могут стоить 25 центов, тогда как небольшое ПЛУ может стоить доллар. Какую-нибудь
конкретную функцию можно реализовать
на трех ИС малой и средней степени интеграции (75 центов) или на одном
ПЛУ (один доллар). В большинстве случаев отдают предпочтение более дорогому ПЛУ, и не потому, что разработчик владеет
акциями компании, производящей эти
микросхемы, а из-за того, что ПЛУ занимает меньше места на плате и в случае его применения
значительно легче будет что-то изменить, если создаваемое устройство не
заработает правильно с первого раза.
При создании устройств на
основе специализированных ИС (ASIC design) суть дела немного в другом, но по-прежнему важным является структурный, функциональный подход к
проектированию. Нетрудно потратить массу времени на разработку микроячеек и минимизацию общего числа вентилей в
специализированной ИС, только это редко бывает разумным. Если снижение стоимости
одиночного изделия
достигается за счет применения меньшего на 10% кристалла, то этим снижением можно пренебречь за исключением случаев,
когда эти изделия предстоит
производить в большом количестве. Если планируемый объем выпуска изделий невелик (а это бывает в большинстве
случаев), то более важным являются два
других фактора: продолжительность проектирования по времени и начальные затраты.
Чем
быстрее выполняется проект, тем скорее можно выпустить изделие на рынок и тем самым
повысить доходы зато время, пока изделие пользуется
спросом. Снижение начальных вложений является чуть ли
не основным моментом, и в
небольших компаниях это может быть единственной возможностью успеть выполнить проект полностью до того, как у вашей
фирмы кончатся деньги (поверьте, мне довелось с этим столкнуться!). Если
первоначальный результат проектирования оказывается успешным, то вслед за этим
всегда бывает возможным и полезным «повылизывать» ваш проект, чтобы уменьшить стоимость
одиночного изделия. Необходимость
сокращения времени разработки и начальных затрат служит аргументом в пользу структурного подхода при проектировании на
основе специализированной ИС в
противоположность принципу предельной оптимизации, поэтому следует пользоваться стандартными функциональными
блоками, имеющимися в библиотеке
производителя специализированных ИС.
Проектирование на основе ПЛУ и ИС типа CPLD и FPGA представляет собой комбинацию
приведенных выше соображений. Выбор конкретного типа ПЛУ и размеров устройства
обычно осуществляется на самой ранней стадии проекта, и пока ваше устройство «влезает» в выбранный кристалл, нет смысла
пытаться оптимизировать число вентилей или площадь печатной платы: все, что
нужно, уже сделано. Если, однако, реализация новых функций или ошибки
выводят вас за пределы возможностей
выбранного кристалла, то это тот случай, когда вы должны хорошо
поработать над проектом и видоизменить его так, чтобы он оказался выполненным.